package common.model.request.base;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.Setter;

import javax.validation.constraints.NotNull;

/**
 * 对接前端分页组件（基于el-pagination二次封装）的封装类
 *
 * @author 米泽鹏
 * @since 2022-2-27 上午 1:52
 */
@Setter
public class PageRequest<PO> {

	/**
	 * 当前页码（从1开始）
	 */
	@NotNull(message = "当前页码page不能为空")
	private Integer current;

	/**
	 * 每页显示的记录数量
	 */
	@NotNull(message = "每页显示的记录数量size不能为空")
	private Integer size;

	/**
	 * 获取MyBatis-Plus分页对象
	 */
	public Page<PO> buildPage() {
		Page<PO> page = new Page<>();
		page.setCurrent(getCurrent());
		page.setSize(getSize());
		return page;
	}

	public Integer getCurrent() {
		return current == null ? 1 : current;
	}

	public Integer getSize() {
		return size == null ? Integer.MAX_VALUE : size;
	}

}
